在應用程式架構中的UI層,提到了單向資料流 (Unidirectional Data Flow, UDF),那什麼是單向資料流呢?
單向資料流是一種設計模式,它將資料在應用程式中的流動限制為單一方向。在 Android 應用程式中,UDF 通常指的是:
為什麼要使用單向資料流?
使用單向資料流的應用程式 UI 更新迴圈如下所示:

使用應用程式架構的 UDF 模式會有下列影響:
@Composable
fun MyScreen(viewModel: MyViewModel) {
    val count by viewModel.count.collectAsState()
    Button(onClick = { viewModel.increment() }) {
        Text(text = "Count: $count")
    }
}
class MyViewModel : ViewModel() {
    private val _count = MutableStateFlow(0)
    val count: StateFlow<Int> = _count
    fun increment() {
        _count.value++
    }
}
https://developer.android.com/codelabs/basic-android-kotlin-compose-viewmodel-and-state?hl=zh-tw#0